"""
体验数据类型转换：
    1、input

    2、检测input数据类型str

    3、int() 转换数据类型

    4、检测是否转换成功

"""
num = input('请输入数字：\n')
print(num)
print(type(num))

num = int(num)
print(type(num))
print('================')

## 数据类型转换函数 ##
# 1、float() -- 将数据转换成浮点型
# 显式转换 -- 使用float函数
s1 = '128.98'
s2 = '76'
ff = True
s3 = 'hello'
i = 98
print(type(s1), type(s2), type(ff), type(s3), type(i))
print(float(s1), type(float(s1)))
print(float(s2), type(float(s2)))
print(float(ff), type(float(ff)))
# error: print(float(s3),type(float(s3))) # 字符串中的数据如果是非数字串，则不允许转换
print(float(i), type(float(i)))

# 隐式转换
print(type(10 + 0.1))
print('================')

# 2、str() -- 将数据转换成字符串
name = '张三'
age = 20
print(type(name), type(age))  # 说明name与age的数据类型不相同
# error: print('我叫'+name+'今年,'+age+'岁')  #当将str类型与int类型进行连接时，报错，解决方案，类型转换
print('我叫' + name + '今年,' + str(age) + '岁')

print("================")

# 3、int() -- 将数据转换成整型
s1 = '128'
f1 = 98.7
s2 = '76.77'
ff = True
s3 = 'hello'
print(type(s1), type(f1), type(s2), type(ff), type(s3))

print(int(s1), type(int(s1)))  # 将str转成int类型 ,字符串为 数字串
print(int(f1), type(int(f1)))  # float转成int类型，截取整数部分，舍掉小数部分
# error: print(int(s2),type(int(s2)))  #将str转成int类型，报错，因为字符串为小数串
print(int(ff), type(int(ff)))
# error: print(int(s3),type(int(s3)))  #将str转成int类型时，字符串必须为数字串（整数），非数字串是不允许转换
print("================")

# 4、tuple() -- 将一个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1))
print("================")

# 5、list() -- 将一个序列转换成列表
t1 = (10, 20, 30)
print(list(t1))
print("================")

# 6、eval() -- 将 括号内的 字符串 以 表达式的形式 计算出结果 并 返回
str2 = '1'
str3 = '1.1'
str4 = '(1000, 2000, 3000)'
str5 = '[1000, 2000, 3000]'
print(type(eval(str2)))
print(type(eval(str3)))
print(type(eval(str4)))
print(type(eval(str5)))
print("================")

## 字符 ————> Unicode
ord('c')

## Unicode ————> 字符
chr(3)

## round() -- 四舍六入规则——如果是5，则取最接近的偶数
round(7.7)  # 结果： 8
round(7.4)  # 结果： 7
round(-9.5)  # 结果： -10 取最接近的偶数
round(3.1415926, 3)  # 对3.1415926 四舍六入————并保留3位小数

## 其他类型————>复数
"""
complex(real,imag) # real为实部————可以是 整数、浮点数、字符串
				   # imag为虚部————可以省略————可以是 整数、浮点数， 不能是字符串
"""
complex(3, 4)
